package com.xbongbong.saas.domain.dao;

import com.xbongbong.saas.domain.entity.CallCenterAgentStrategyEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author youli.chen
 * @version v1.0
 * @description: 话务中心坐席策略DAO
 * @date 2019/2/27 16:46
 * @since v1.0
 */
public interface CallCenterAgentStrategyDao {

    /**
     * 新增话务中心坐席策略
     * @param callCenterAgentStrategy  话务中心坐席策略实体类
     * @return
     */
    Integer insert(CallCenterAgentStrategyEntity callCenterAgentStrategy);

    /**
     * 更新话务中心坐席策略
     * @param callCenterAgentStrategy  话务中心坐席策略实体类
     * @return
     */
    Integer update(CallCenterAgentStrategyEntity callCenterAgentStrategy);

    /**
     * 批量新增话务中心坐席策略
     * @param callCenterAgentStrategyList  话务中心坐席策略列表
     */
    void insertBatch(List<CallCenterAgentStrategyEntity> callCenterAgentStrategyList);

    /**
     * 根据主键删除话务中心坐席策略
     * @param key  主键
     * @param corpid  公司ID
     * @return
     */
    Integer deleteByKey(@Param("key") Long key, @Param("corpid") String corpid);

    /**
     * 根据主键查询话务中心坐席策略详情
     * @param key  主键
     * @param corpid  公司ID
     * @return
     */
    CallCenterAgentStrategyEntity getByKey(@Param("key") Long key, @Param("corpid") String corpid);

    /**
     * 根据条件查询查询话务中心坐席策略列表
     * @param param  查询条件
     * @return
     */
    List<CallCenterAgentStrategyEntity> findEntitys(@Param("param") Map<String, Object> param);

    /**
     * 根据条件统计
     * @param param  查询条件
     * @return
     */
    Integer getEntitysCount(@Param("param") Map<String, Object> param);

    /**
     * 关闭所有坐席套餐
     * @param corpid 公司id
     * @param now 现在时间，10位整形
     *
     * @author 章华隽
     * 创建时间：2018/3/27 下午3:00
     * 修改时间：
     * @version 3.20
     * @since 3.20
     */
    void disableAllStrategy(@Param("corpid") String corpid, @Param("now") Integer now);
}
